﻿//-----------------------------------------------------------------------------------------------------------
// Wbfs Engine (WBFSe) Project by Omega Frost 
// http://wbfse.codeplex.com/
//
// WBFSe is Licensed under the terms of the 
// Microsoft Reciprocal License (Ms-RL)
//-----------------------------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WBFSe.FormatApi;
using WBFSe.Attributes;

namespace WBFSe.Formats
{
    /// <summary>
    /// Built-in Wbfs partition Format
    /// </summary>
    class PWbfsFormat : IWbfsFormat
    {
        /// <summary>
        /// Name of the format
        /// </summary>
        public string Name
        {
            get { return "PWBFS"; }
        }

        /// <summary>
        /// Description of the format
        /// </summary>
        public string Description
        {
            get { return "Wbfs Partition"; }
        }

        /// <summary>
        /// Author of the format
        /// </summary>
        public string Author
        {
            get { return "Omega Frost"; }
        }

        /// <summary>
        /// Project's or author's URL
        /// </summary>
        public string Url
        {
            get { return "http://wbfse.codeplex.com"; }
        }

        /// <summary>
        /// Extension in .ext format
        /// </summary>
        public string Extension
        {
            get { return ".$wbfs"; }
        }

        /// <summary>
        /// Format implements a Creator
        /// </summary>
        public bool CanCreate
        {
            get { return true; }
        }

        /// <summary>
        /// Streams created by the Reader are read-only
        /// </summary>
        public bool ReadOnly
        {
            get { return false; }
        }

        /// <summary>
        /// The type of game that can be stored in the container
        /// </summary>
        public GamePlatform Platform
        {
            get { return GamePlatform.Wii; }
        }

        /// <summary>
        /// Information about splitting the container
        /// </summary>
        public SplitInfo Split
        {
            get { return SplitInfo.None; }
        }

        /// <summary>
        /// return new your-reader-type-here()
        /// </summary>
        /// <returns>The specified format reader</returns>
        public WbfsReader InvokeReader()
        {
            return new PWbfsReader();
        }

        /// <summary>
        /// return new your-creator-type-here()
        /// </summary>
        /// <returns>The specified format creator</returns>
        public WbfsCreator InvokeCreator()
        {
            return new PWbfsCreator();
        }
    }
}
